const app = getApp()
import { customerPublicType, customerSmall, customerBig, customerStart, customerEnd } from "../../common/static/api_data.js"
import filter from '../../mixins/filter'
Page({
  mixins: [filter],
  data: {
    customerPublicType,
    small: customerSmall,
    big: customerBig,
    start: customerStart,
    end: customerEnd,
    regionList: []
  },
  onLoad() {
    if (app.globalData.filterData && Object.keys(app.globalData.filterData).length > 0) {
      this.rendering(app.globalData.filterData) 
    }
  },
  /**
   * 重置客源筛选数据
   * author wl
   * regionList      清空区域列表
   * customerPublicType   清空状态列表
   * startdate       清空所有初始时间
   * enddate        清空所有结束时间
   * state              清空选中的状态值
   * regionValue  清空选中的区域值
   */
  reset() {
    // 需求区域布尔更改,需求户型布尔更改,状态布尔更改
    this.changeBoolean()
    // 重置筛选数据合集
    this.resetTenant()
    // 重新赋值，清空数据
    this.setData({
      regionList: this.data.regionList,
      customerPublicType: this.data.customerPublicType,
      startdate: "", // 初始时间
      enddate: "", // 结束时间
      state: "", // 状态
      regionValue: "" //区域
    })
    app.globalData.filterData = null
  },
  /**
 * 选中渲染筛选条件数据
 * author wl
 */
  rendering(e) {
    // 拿到选中好的筛选条件model
    let jsonData = e.detail?e.detail.jsonData:e
    // 进行数据整理渲染
    this.customerFilterRender(jsonData)
  },
  /**
 * 新增筛选条，确定筛选客源列表数据，修改筛选条件
 * author wl
 */
  save: function (e) {
    // 深拷贝筛选文件数据
    let file = JSON.parse(JSON.stringify(e.detail.saveFileBox))
    // 新增使用数据
    this.customerFilterModel(e)
    // 新增条件
    if (e.detail.confirm && !file) {
      // 新增的时候区域是否为空，赋予[]
      this.searchData.jsonData.customerRegion ? this.searchData.jsonData.customerRegion = this.searchData.jsonData.customerRegion : this.searchData.jsonData.customerRegion = []
      // 新增接口调用，至少有文件名
      e.detail.fileName !== "" ? request.customerFilterAdd(this.searchData).then((res) => {
      }) : ""
    }
    // 修改条件
    this.modifyFilter(e.detail.confirm, file, e.detail.hide, "customer")
  },
  /**
 * 选择筛选客源状态
 */
  statusChange: function (e) {
    // 调用筛选组件事件
    // 获取选中的客源状态
    this.setData({
      customerPublicType: e.detail.model,
      state: e.detail.value
    })
  },
  /**
 * 循环渲染当前选中筛选条件的数据
 * author wl
 * jsonData     筛选条件model
 * data            所有数据字典
 */
  customerForRendering(jsonData, data) {
    // 循环选中的筛选条件
    for (let prop in jsonData) {
      // 渲染数组类型
      if (jsonData[prop] && data[prop] instanceof Array) {
        for (let i = 0; i < data[prop].length; i++) {
          // 渲染状态
          this.renderingStatus(prop, data, jsonData, i, 'customerPublicType')
        }
        // 渲染区域
        if (prop === 'customerRegion') {
          // 循环对比筛选条件的值与字典，相同checked为true
          this.forArrRendering(data[prop], jsonData[prop])
          // 赋值更新数据
          this.setData({
            regionList: this.data.regionList
          })
        }
      }
      // 渲染非数组类型
      this.clearHour(jsonData, prop, data)
    }
    // 赋值更新数据
    this.setData({ searchData: this.data.searchData })
  },
})